Carlos Garnacho [Tue, 8 Apr 2014 18:21:17 +0000 (20:21 +0200)]
cellrendereraccel: remove superfluous GTK+ grabs
Carlos Garnacho [Thu, 3 Apr 2014 12:44:58 +0000 (14:44 +0200)]
Revert "gtk: Remove propagation limit of captured events on the grab widget"
This reverts commit
6511f411955adba4f960b8b07d39b93785afe33e.
Carlos Garnacho [Mon, 31 Mar 2014 10:27:43 +0000 (12:27 +0200)]
longpress: Use xsettings to determine long press duration
GtkSettings::gtk-long-press-time is used to this effect.
Carlos Garnacho [Mon, 31 Mar 2014 10:22:11 +0000 (12:22 +0200)]
settings: Add gtk-long-press-time setting
This setting determines the duration of a button/touch press to
be considered a long press.
Carlos Garnacho [Fri, 28 Mar 2014 14:44:11 +0000 (15:44 +0100)]
window: Use gestures for window moving/resizing
A multipress gesture is used to control all this, replacing
single/double click custom code, and triggering window dragging
when the multipress is stopped, yet active (ie. the sequence remains
pressed).
Carlos Garnacho [Thu, 27 Mar 2014 11:31:28 +0000 (12:31 +0100)]
treeview: Use multipress gesture for row activation
Replace custom double click detection with multipress gesture
Carlos Garnacho [Fri, 28 Mar 2014 22:23:38 +0000 (23:23 +0100)]
dnd: Use GtkGestureDrag to initiate DnD
This gesture is used by gtk_drag_source_set() to determine
whether dragging moved past the threshold. The gesture events
are handled via the usual ::event callbacks, so we don't mess
up with callers expecting that to happen in a signal handler.
If the sequence gets claimed somewhere else in the event widget
stack, the DnD gesture will be cancelled.
Carlos Garnacho [Wed, 26 Mar 2014 13:06:09 +0000 (14:06 +0100)]
scrolledwindow: Ensure the dragging sequence gets denied if more touches come in
This allows children to receive an emulated press, and handle it together with
the new touch that made the scrolledwindow sequence denied.
Carlos Garnacho [Wed, 26 Mar 2014 09:53:42 +0000 (10:53 +0100)]
scrolledwindow: Fix overshoot coordinates
With gtk_gesture_get_point() returning events in
gtk_event_controller_get_widget() coordinates, we no longer need
to compensate for the overshoot here.
Carlos Garnacho [Wed, 26 Mar 2014 09:49:21 +0000 (10:49 +0100)]
widget: Add gtk_widget_set_gesture_state()
This helper function ensures the state is propagated for
all the active sequences in the given gesture.
Carlos Garnacho [Wed, 26 Mar 2014 09:25:09 +0000 (10:25 +0100)]
widget: Improve button press emulation on sequence denied
Ensure that state being set on pointer emulating touches actually
gets propagated properly on widgets with gestures that only handle
pointer events.
Carlos Garnacho [Tue, 25 Mar 2014 12:45:17 +0000 (13:45 +0100)]
swipe: Dont emit swipe() if the gesture was denied rather than finished
Carlos Garnacho [Tue, 25 Mar 2014 12:22:51 +0000 (13:22 +0100)]
drag: Make API offsets based
It is generally more useful to get offsets right away,
than having to calculate those from the start point.
Carlos Garnacho [Fri, 21 Mar 2014 18:23:37 +0000 (19:23 +0100)]
scrolledwindow: Use GtkGestureSingle API
Carlos Garnacho [Mon, 24 Mar 2014 13:45:55 +0000 (14:45 +0100)]
scrolledwindow: Update gesture API change.
Carlos Garnacho [Mon, 24 Mar 2014 13:44:27 +0000 (14:44 +0100)]
demo: Update to gesture API change
Carlos Garnacho [Mon, 24 Mar 2014 13:42:13 +0000 (14:42 +0100)]
widget: Reset gestures on grab-notify
If it is determined that the gesture will stop receiving
events, reset the gesture altogether.
Carlos Garnacho [Mon, 24 Mar 2014 13:35:17 +0000 (14:35 +0100)]
widget: Make helper gesture API take GtkGestures
GtkEventController may be certainly useful to keep event
handling self-contained in other places than gestures, but
the current widget API is highly related to gestures, so
just using GtkGesture as the argument there will be quite
more convenient. The other places where GtkEventController
make sense as a base object will better provide their own
hooks.
Carlos Garnacho [Mon, 24 Mar 2014 12:19:53 +0000 (13:19 +0100)]
Add: GTK_PHASE_NONE value to GtkCapturePhase.
Gestures attached with this phase will expect callers to have it
receive events through gtk_event_controller_handle_event(), but
the gesture will still be notified of sequence state changes,
grabs, etc...
Carlos Garnacho [Mon, 24 Mar 2014 12:11:47 +0000 (13:11 +0100)]
gesture: check the gesture after denying a sequence.
So the gesture emits end() timely.
Carlos Garnacho [Mon, 24 Mar 2014 12:04:51 +0000 (13:04 +0100)]
gesture: Offer always coordinates in the gesture widget coordinate space
Translate events meant for other widgets/windows, so gtk_gesture_get_point()
always returns coordinates based on the gtk_event_controller_get_widget()
allocation.
Carlos Garnacho [Mon, 24 Mar 2014 11:21:38 +0000 (12:21 +0100)]
multipress: Remove unused signal argument
Carlos Garnacho [Fri, 21 Mar 2014 18:45:27 +0000 (19:45 +0100)]
swipe: Make a subclass of GtkGestureSingle
Carlos Garnacho [Fri, 21 Mar 2014 18:39:21 +0000 (19:39 +0100)]
drag: Make a subclass of GtkGestureSingle
Carlos Garnacho [Fri, 21 Mar 2014 18:21:56 +0000 (19:21 +0100)]
multipress: Make a subclass of GtkGestureSingle
The redundant API has been removed here.
Carlos Garnacho [Fri, 21 Mar 2014 17:57:32 +0000 (18:57 +0100)]
longpress: Make a subclass of GtkGestureSingle
the redundant API here has been removed.
Carlos Garnacho [Fri, 21 Mar 2014 17:13:41 +0000 (18:13 +0100)]
gesture: Only recognize gestures with as many interacting touches as those handled
If a gesture has denied sequences (so those are presumably handled above/below
the widget), it shouldn't attempt to handle extra touches, even if those end
up matching the expected number of touches.
Carlos Garnacho [Fri, 21 Mar 2014 17:09:38 +0000 (18:09 +0100)]
gesture: Limit API calls to non-denied sequences
Gestures do track those internally, but information about those
shouldn't be leaked on calls.
Carlos Garnacho [Fri, 21 Mar 2014 16:47:06 +0000 (17:47 +0100)]
gesture: Require BUTTON_PRESS/TOUCH_BEGIN for sequences to be initiated.
Gestures should always receive one of such events in order to be activated,
and the propagation mechanism will ensure they do so if the original event
was caught up the widget hierarchy by another gesture that is now declining
the sequence.
Carlos Garnacho [Fri, 21 Mar 2014 16:34:41 +0000 (17:34 +0100)]
gesture: Only track non denied sequences in get_last_updated_sequence()
Carlos Garnacho [Fri, 21 Mar 2014 16:31:19 +0000 (17:31 +0100)]
gesture: cancel all ongoing sequences on reset()
Carlos Garnacho [Fri, 21 Mar 2014 16:17:42 +0000 (17:17 +0100)]
gesture: Skip non-device events early.
Carlos Garnacho [Fri, 21 Mar 2014 16:14:53 +0000 (17:14 +0100)]
gesture: Add gtk_gesture_[sg]et_window()
This can be used to restrict a gesture to an specific GdkWindow,
all events will be checked to happen on/within that window.
Carlos Garnacho [Fri, 28 Mar 2014 19:35:53 +0000 (20:35 +0100)]
docs: Add GtkGestureSingle to docs
Carlos Garnacho [Fri, 21 Mar 2014 14:31:12 +0000 (15:31 +0100)]
gesture: Remove the touch-only property
This is handled in GtkGestureSingle.
Carlos Garnacho [Fri, 21 Mar 2014 14:05:29 +0000 (15:05 +0100)]
Add GtkGestureSingle
This is a GtkGesture subclass, specific to single-touch (or
mouse operated) gestures.
Matthias Clasen [Fri, 7 Mar 2014 02:17:44 +0000 (21:17 -0500)]
...and add the right include instead
Matthias Clasen [Fri, 7 Mar 2014 02:13:57 +0000 (21:13 -0500)]
Remove a doubled line
Carlos Garnacho [Mon, 3 Mar 2014 20:40:19 +0000 (21:40 +0100)]
scrolledwindow: Use gesture button/touch press synthesization
This makes scrolled window fully compatible again wrt the
GtkScrolledWindow::capture-button-press property.
Carlos Garnacho [Mon, 3 Mar 2014 19:47:43 +0000 (20:47 +0100)]
widget: Propagate touch/button press events when a sequence is denied
If the captured touch begin or button press event have been consumed
for the given sequence, propagate it upwards if the sequence goes from
claimed to denied, so the widgets on the way to the event widget receive
a coherent event stream now that they're going to receive events.
Carlos Garnacho [Mon, 3 Mar 2014 19:46:10 +0000 (20:46 +0100)]
gesture: Add private getter to know whether a touch begin was handled
If GDK_TOUCH_BEGIN was handled/consumed for a sequence, or GDK_BUTTON_PRESS was
handled for the mouse gesture, this function will return TRUE.
Carlos Garnacho [Mon, 3 Mar 2014 13:08:45 +0000 (14:08 +0100)]
widget: Implement hierarchy-level mechanism to claim/deny sequences
The policy of sequence states has been made tighter on GtkGesture,
so gestures can never return to a "none" state, nor get out of a
"denied" state, a "claimed" sequence can go "denied" though.
The helper API at the widget level will first emit
GtkWidget::sequence-state-changed on the called widget, and then
notify through the same signal to every other widget in the captured
event chain. So the effect of that signal is twofold, on one hand
it lets the original widget set the state on its attached controllers,
and on the other hand it lets the other widgets freely adapt to the
sequence state changing elsewhere in the event widget chain.
By default, that signal updates every controller on the first usecase,
and propagates the default gesture policy to every other widget in the
chain on the second. This means that, by default:
1) Sequences start out on the "none" state, and get propagated through
all the event widget chain.
2) If a widget in the chain denies the sequence, all other widgets are
unaffected.
3) If a widget in the chain claims the sequence, then:
3.1) Every widget below the claiming widget (ie. towards the event widget)
will get the sequence cancelled.
3.2) Every widget above the claiming widget that had the sequence as "none"
will remain as such, if it was claimed it will go denied, but that should
rarely happen.
This behavior can be tweaked through the GtkWidget::sequence-state-changed and
GtkGesture::event-handled vmethods, although this should be very rarely done.
Carlos Garnacho [Thu, 27 Feb 2014 16:41:03 +0000 (17:41 +0100)]
docs: Add GtkWidget gesture functions
Carlos Garnacho [Wed, 26 Feb 2014 14:48:21 +0000 (15:48 +0100)]
scrolledwindow: port to GtkGesture
The kinetic scrolling feature is now implemented using a
GtkGestureDrag and a GtkGestureSwipe, plus a GtkGestureLongPress
in order to denying the sequence, so it is possibly handled
underneath.
Carlos Garnacho [Wed, 26 Feb 2014 12:07:08 +0000 (13:07 +0100)]
widget: Add widget-level handling of touch sequence state.
These functions ATM do nothing but proxying the controller(s) state
with the given sequence.
Carlos Garnacho [Wed, 26 Feb 2014 11:50:31 +0000 (12:50 +0100)]
widget: Hook GtkEventController to widget event processing.
A controller can be optionally hooked on the capture or the bubble
phase, so the controller will automatically receive and handle events
as they arrive without further interaction.
Carlos Garnacho [Mon, 24 Feb 2014 13:51:27 +0000 (14:51 +0100)]
gtk: Remove propagation limit of captured events on the grab widget
Now, all captured events run from the toplevel to the deepmost widget,
regardless of GTK+ grabs. This makes captured events more useful to
event controllers if used together in the hierarchy with widgets doing
old fashioned event handling and GTK+ grabs.
Carlos Garnacho [Thu, 17 Jan 2013 20:12:39 +0000 (21:12 +0100)]
gtk-demo: Add simple gestures demo
Carlos Garnacho [Thu, 17 Jan 2013 20:11:47 +0000 (21:11 +0100)]
hook GtkGesture* into docs generation
Carlos Garnacho [Thu, 27 Feb 2014 14:26:48 +0000 (15:26 +0100)]
Add GtkGestureMultiPress
This gesture handles any number of clicks, ensuring multiple presses
stay within thresholds and timeouts. When anything of that happens,
the gesture is reset and press count starts from 1 again.
Optionally, the gesture can be given a rectangle, used in in presses > 1
to ensure the consecutive presses happen on user imposed areas.
Carlos Garnacho [Thu, 20 Feb 2014 16:04:49 +0000 (17:04 +0100)]
Add GtkGestureDrag
This gesture interprets and reports drags as an offset to the drag
start point.
Carlos Garnacho [Thu, 17 Jan 2013 20:08:20 +0000 (21:08 +0100)]
Add GtkGestureZoom
This gesture interprets and reports relative scale differences when fed
with events from two different GdkEventSequences.
Carlos Garnacho [Thu, 17 Jan 2013 20:06:06 +0000 (21:06 +0100)]
Add GtkGestureRotate
This gesture implementation recognizes rotations when fed with
events from two different GdkEventSequences
Carlos Garnacho [Thu, 17 Jan 2013 20:02:28 +0000 (21:02 +0100)]
Add GtkGestureSwipe
This gesture implementation recognices swipes on any direction.
The "swipe" signal has the X/Y velocity vector components, so
those can be used for direction guessing and velocity thresholds.
Carlos Garnacho [Thu, 17 Jan 2013 22:57:06 +0000 (23:57 +0100)]
Add GtkGestureLongPress
This gesture interprets long presses with variable delays
and thresholds
Carlos Garnacho [Thu, 17 Jan 2013 19:59:07 +0000 (20:59 +0100)]
Add GtkGesture
This a more specific abstract type that handles one or multiple
streams of pointer/touch events.
Carlos Garnacho [Thu, 17 Jan 2013 19:55:24 +0000 (20:55 +0100)]
Add GtkEventController
This is a basic abstract type that handles GdkEvents.
Benjamin Otte [Fri, 23 May 2014 17:27:53 +0000 (19:27 +0200)]
themingbackground: Outset shadows require border box
They are drawn relative to the border box, not relative to the padding
box.
Benjamin Otte [Mon, 19 May 2014 13:32:39 +0000 (15:32 +0200)]
css: Make getter function a real getter
Initialize the passed-in value, don't treat it as an in-out parameter.
Matthias Clasen [Fri, 23 May 2014 16:17:56 +0000 (12:17 -0400)]
testsuite: Add more icon names
These were found by looking over the GTK+ sources and ui files.
Matthias Clasen [Fri, 23 May 2014 15:52:12 +0000 (11:52 -0400)]
Add more icons to check-icon-names
These are icons which are used as GtkArrow replacement, and
icons used for the volume button.
Matthias Clasen [Fri, 23 May 2014 15:31:53 +0000 (11:31 -0400)]
testsuite: Run reftests with GTK_DEBUG=icontheme
This will hopefully help to track down some hard-to-squash
failures that only happen in gnome-continuous.
Benjamin Otte [Fri, 23 May 2014 14:35:08 +0000 (16:35 +0200)]
testsuite: Add a test for icon names
This test just checks that all the icon names that GTK uses are present
in the default icon theme.
As icon names are not checked programmatically and we do not want to run
into missing-icon icons in the code, this test seems necessary.
For now, it's just a stub that tests stock icons.
Matthias Clasen [Fri, 23 May 2014 02:45:56 +0000 (22:45 -0400)]
GtkButton: tighten code a bit
Make it so we only use GtkMisc in one place.
Matthias Clasen [Thu, 22 May 2014 22:32:37 +0000 (18:32 -0400)]
inspector: Repeat the keybinding warning
Show the confirmation dialog every time the keybinding is used,
until the user clicks OK.
Matthias Clasen [Thu, 22 May 2014 22:31:11 +0000 (18:31 -0400)]
inspector: avoid a warning on destroy
We are only hiding the window now, so a memory management
error has crept into the destroy path.
Benjamin Otte [Thu, 22 May 2014 20:35:39 +0000 (22:35 +0200)]
Revert "Fix crash"
This reverts commit
024c11dd66dfda5efb110f55ecec93801f21c0ed.
It's not a crash fix to cause a return_val_if_fail() to happen.
Benjamin Otte [Thu, 22 May 2014 20:34:17 +0000 (22:34 +0200)]
reftests: Fix icon-vfuncs reftest
The reftest broke when font size lead to labels > 16px.
Behdad Esfahbod [Thu, 22 May 2014 19:52:01 +0000 (15:52 -0400)]
Fix crash
Matthias Clasen [Thu, 22 May 2014 19:46:42 +0000 (15:46 -0400)]
docs: Include input handling overview
Now that it is not entirely empty anymore, lets include it.
Matthias Clasen [Thu, 22 May 2014 19:45:31 +0000 (15:45 -0400)]
Some more input handling docs
Matthias Clasen [Thu, 22 May 2014 19:16:09 +0000 (15:16 -0400)]
Fill in some content in the input handling overview
Jasper St. Pierre [Thu, 22 May 2014 19:01:36 +0000 (15:01 -0400)]
gdkwindow-x11: Rearrange a tiny bit
Jasper St. Pierre [Thu, 22 May 2014 19:01:07 +0000 (15:01 -0400)]
gdkwindow-x11: Fix build
Jasper St. Pierre [Thu, 22 May 2014 18:47:28 +0000 (14:47 -0400)]
gdkwindow-x11: Ungrab the implicit grab before showing the window menu
Otherwise, the WM cannot take a grab on the pointer device, since we'll
still have the implicit grab.
Jasper St. Pierre [Thu, 22 May 2014 15:48:59 +0000 (11:48 -0400)]
reftests: Remove the css-match-style-property-order test
It was testing -GtkWidget-focus-line-width, which is a dead property
we don't use anymore.
Matthias Clasen [Thu, 22 May 2014 18:45:15 +0000 (14:45 -0400)]
Drop an unused spec file template
Last touched in 2008...probably not relevant.
Jasper St. Pierre [Thu, 22 May 2014 15:45:52 +0000 (11:45 -0400)]
reftests: Fix some more easy GtkButton shadow cases
Benjamin Otte [Thu, 22 May 2014 15:35:34 +0000 (17:35 +0200)]
reftests: Fix background-area test
The test should include reset-to-defaults.css but apparently it is older
than that file. So it broke when buttons started using shadows.
Jasper St. Pierre [Thu, 22 May 2014 14:47:58 +0000 (10:47 -0400)]
gdkwindow-x11: Pass through the x/y coordinates to _GTK_SHOW_WINDOW_MENU
We accept these now.
Jasper St. Pierre [Thu, 22 May 2014 15:15:41 +0000 (11:15 -0400)]
tests: Remove unused args
Piotr Drąg [Thu, 22 May 2014 14:12:06 +0000 (16:12 +0200)]
Updated POTFILES.in
Matthias Clasen [Thu, 22 May 2014 13:31:15 +0000 (09:31 -0400)]
Forgotten file
Matthias Clasen [Thu, 22 May 2014 13:05:58 +0000 (09:05 -0400)]
Deprecate GdkColor
It has been replaced by GdkRGBA. Time to make it official.
http://bugzilla.gnome.org/show_bug.cgi?id=636695
Matthias Clasen [Thu, 22 May 2014 12:51:37 +0000 (08:51 -0400)]
examples: Don't use gtk_application_add_accelerator
It has been deprecated.
Matthias Clasen [Thu, 22 May 2014 12:50:18 +0000 (08:50 -0400)]
tests: Adapt to gtk_widget_reparent deprecations
Matthias Clasen [Thu, 22 May 2014 12:49:18 +0000 (08:49 -0400)]
tests: Update for GtkMisc deprecations
Matthias Clasen [Thu, 22 May 2014 12:30:34 +0000 (08:30 -0400)]
tests: Drop manual property editor
No need for this anymore, now that we have the inspector everywhere.
Matthias Clasen [Thu, 22 May 2014 11:51:27 +0000 (07:51 -0400)]
gtk-demo: Don't use GtkArrow
It is deprecated now.
Matthias Clasen [Thu, 22 May 2014 10:29:24 +0000 (06:29 -0400)]
Avoid a compiler warning
Marc-André Lureau [Fri, 16 May 2014 18:42:28 +0000 (20:42 +0200)]
tests: add clipboard set_with_data test
https://bugzilla.gnome.org/show_bug.cgi?id=730183
Matthias Clasen [Thu, 22 May 2014 10:15:12 +0000 (06:15 -0400)]
Update treeview tests for focus changes
The treeview is not using focus-pad here anymore, so update
the tests to not expect it.
Matthias Clasen [Thu, 22 May 2014 10:00:09 +0000 (06:00 -0400)]
GtkScrolledWindow: Avoid a test failure
The change to take out unneeded NULL checks requires some care
at startup: we check both adjustments when any of them changes;
we need to do those checks in the same order in which we create
the scrollbars, otherwise we'll try to get the adjustment of
the vscrollbar when we just set the up the hscrollbars' adjustment.
Björn Lindqvist [Tue, 26 Mar 2013 16:45:47 +0000 (12:45 -0400)]
Remove redundant not-NULL checks from GtkScrolledWindow
The scrollbars are created at construction time and there is no
way to set them to NULL so remove the unnecessary NULL checks.
https://bugzilla.gnome.org/show_bug.cgi?id=525206
Matthias Clasen [Thu, 22 May 2014 02:50:48 +0000 (22:50 -0400)]
Avoid a critical in the file chooser
Hiding the location entry was causing criticals, because
the completion was updated after the widget has already
been disposed.
https://bugzilla.gnome.org/show_bug.cgi?id=720330
Benjamin Otte [Wed, 21 May 2014 17:17:21 +0000 (19:17 +0200)]
css: Actually break at end of the string
Introduced in
65c4c1555d0634c063c3aa354620de260e4aaf7f.
Found by gnome-continuous running the testsuite.
Includes fixing a broken test in the testsuite.
Matthias Clasen [Thu, 22 May 2014 00:11:16 +0000 (20:11 -0400)]
GtkAppChooserDialog: Make the search entry wider
It was too narrow, and looked a bit odd.
https://bugzilla.gnome.org/show_bug.cgi?id=727147
Matthias Clasen [Thu, 22 May 2014 00:09:46 +0000 (20:09 -0400)]
searchbar: Add some spacing
When showing the close button, and placing a wide entry in the
middle, there was no separation at all. Fix this by setting
some spacing.
Matthias Clasen [Wed, 21 May 2014 23:23:56 +0000 (19:23 -0400)]
ColorChooser: Emit notification for editor changes
When the color editor is visible, there is no way for the
application to know about the changes that are happening.
Fix this by emitting property notification for the "rgba"
property.
http://bugzilla.gnome.org/show_bug.cgi?id=708037
Matthias Clasen [Wed, 21 May 2014 23:02:52 +0000 (19:02 -0400)]
Add a 3.14 index for the GDK docs